<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: PPU Group (GR) v1 Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__prot__functions__ppu__gr.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">PPU Group (GR) v1 Functions<div class="ingroups"><a class="el" href="group__group__prot.html">Prot         (Protection Unit)</a> &raquo; <a class="el" href="group__group__prot__functions.html">Functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga8d916f58eed8acfb75f244a7a110a378"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__prot__functions__ppu__gr.html#ga8d916f58eed8acfb75f244a7a110a378">Cy_Prot_ConfigPpuFixedGrMasterStruct</a> (<a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *base, const <a class="el" href="structcy__stc__ppu__gr__cfg__t.html">cy_stc_ppu_gr_cfg_t</a> *config)</td></tr>
<tr class="memdesc:ga8d916f58eed8acfb75f244a7a110a378"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures a Fixed Peripheral Group Protection Unit (PPU GR) master protection struct with its protection attributes.  <a href="#ga8d916f58eed8acfb75f244a7a110a378">More...</a><br /></td></tr>
<tr class="separator:ga8d916f58eed8acfb75f244a7a110a378"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b6956824bdfa0981edc8c528cd10727"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__prot__functions__ppu__gr.html#ga3b6956824bdfa0981edc8c528cd10727">Cy_Prot_ConfigPpuFixedGrSlaveStruct</a> (<a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *base, const <a class="el" href="structcy__stc__ppu__gr__cfg__t.html">cy_stc_ppu_gr_cfg_t</a> *config)</td></tr>
<tr class="memdesc:ga3b6956824bdfa0981edc8c528cd10727"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures a Fixed Peripheral Group Protection Unit (PPU GR) slave protection struct with its protection attributes.  <a href="#ga3b6956824bdfa0981edc8c528cd10727">More...</a><br /></td></tr>
<tr class="separator:ga3b6956824bdfa0981edc8c528cd10727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad12dc125790e5f1d22a8427ce4102889"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__prot__functions__ppu__gr.html#gad12dc125790e5f1d22a8427ce4102889">Cy_Prot_EnablePpuFixedGrMasterStruct</a> (<a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *base)</td></tr>
<tr class="memdesc:gad12dc125790e5f1d22a8427ce4102889"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the Master PPU GR structure.  <a href="#gad12dc125790e5f1d22a8427ce4102889">More...</a><br /></td></tr>
<tr class="separator:gad12dc125790e5f1d22a8427ce4102889"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d193cf9763b597a8169cac671d6cb6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__prot__functions__ppu__gr.html#ga8d193cf9763b597a8169cac671d6cb6e">Cy_Prot_DisablePpuFixedGrMasterStruct</a> (<a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *base)</td></tr>
<tr class="memdesc:ga8d193cf9763b597a8169cac671d6cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the Master PPU GR structure.  <a href="#ga8d193cf9763b597a8169cac671d6cb6e">More...</a><br /></td></tr>
<tr class="separator:ga8d193cf9763b597a8169cac671d6cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4e0c6e3ace27f9f6a65d0e92d8185b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__prot__functions__ppu__gr.html#gaa4e0c6e3ace27f9f6a65d0e92d8185b9">Cy_Prot_EnablePpuFixedGrSlaveStruct</a> (<a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *base)</td></tr>
<tr class="memdesc:gaa4e0c6e3ace27f9f6a65d0e92d8185b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the Slave PPU GR structure.  <a href="#gaa4e0c6e3ace27f9f6a65d0e92d8185b9">More...</a><br /></td></tr>
<tr class="separator:gaa4e0c6e3ace27f9f6a65d0e92d8185b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b00e720c50090fbb31288400ed31a8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__prot__functions__ppu__gr.html#ga1b00e720c50090fbb31288400ed31a8c">Cy_Prot_DisablePpuFixedGrSlaveStruct</a> (<a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *base)</td></tr>
<tr class="memdesc:ga1b00e720c50090fbb31288400ed31a8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the Slave PPU GR structure.  <a href="#ga1b00e720c50090fbb31288400ed31a8c">More...</a><br /></td></tr>
<tr class="separator:ga1b00e720c50090fbb31288400ed31a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga8d916f58eed8acfb75f244a7a110a378"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d916f58eed8acfb75f244a7a110a378">&#9670;&nbsp;</a></span>Cy_Prot_ConfigPpuFixedGrMasterStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a> Cy_Prot_ConfigPpuFixedGrMasterStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__ppu__gr__cfg__t.html">cy_stc_ppu_gr_cfg_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configures a Fixed Peripheral Group Protection Unit (PPU GR) master protection struct with its protection attributes. </p>
<p>This function configures the master struct governing the corresponding slave struct pair. It is a mechanism to protect the slave PPU GR struct. Since the memory location of the slave struct is known, the address, regionSize and subregions of the configuration struct are not applicable.</p>
<p>Note that only the user/privileged write permissions are configurable. The read and execute permissions are read-only and cannot be configured.</p>
<dl class="section note"><dt>Note</dt><dd>This function is applicable for CPUSS ver_1 only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The register base address of the protection struct being configured.</td></tr>
    <tr><td class="paramname">config</td><td>Initialization structure with all the protection attributes.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status of the function call.</dd></dl>
<table class="doxtable">
<tr>
<th>Status </th><th>Description  </th></tr>
<tr>
<td>CY_PROT_SUCCESS </td><td>PPU GR master struct was successfully configured. </td></tr>
<tr>
<td>CY_PROT_FAILURE </td><td>The resource is locked. </td></tr>
<tr>
<td>CY_PROT_BAD_PARAM </td><td>An incorrect/invalid parameter was passed. </td></tr>
<tr>
<td>CY_PROT_INVALID_STATE </td><td>The function was called on the device with an unsupported PERI HW version. </td></tr>
</table>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: A bus master must not be able to access the PERI_PPU_GR_MMIO0 master</span></div><div class="line"><span class="comment">                 and slave structs unless operating with PC=0, &quot;secure&quot; and</span></div><div class="line"><span class="comment">                 &quot;privileged&quot; access settings. The PERI_PPU_GR0 slave struct is </span></div><div class="line"><span class="comment">                 already configured and enabled. */</span></div><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__ppu__gr__cfg__t.html">cy_stc_ppu_gr_cfg_t</a> grPpuCfg_m = {</div><div class="line">        <span class="comment">/*.userPermission =*/</span> <a class="code" href="group__group__prot__enums.html#gga330789bc5242c26b8a32df63fa8720e5aad6e3850fb76be4bd78240a4fc284985">CY_PROT_PERM_R</a>,       <span class="comment">/* Read access always available for Master */</span></div><div class="line">        <span class="comment">/*.privPermission =*/</span> <a class="code" href="group__group__prot__enums.html#gga330789bc5242c26b8a32df63fa8720e5aa7d757bf3cedd4f675b65d3ed642d315">CY_PROT_PERM_RW</a>,      <span class="comment">/*  Allow read and write privileged mode accesses */</span></div><div class="line">        <span class="comment">/*.secure =*/</span> <span class="keyword">true</span>,                         <span class="comment">/* Only allow &quot;secure&quot; bus masters */</span></div><div class="line">        <span class="comment">/*.pcMatch =*/</span> <span class="keyword">false</span>,                       <span class="comment">/* Perform access evaluation */</span></div><div class="line">        <span class="comment">/*.pcMask =*/</span> (uint16_t)0UL                 <span class="comment">/* Only allow PC=0 bus masters */</span></div><div class="line">    };</div><div class="line">    </div><div class="line">    <span class="comment">/* Configure the master struct of PPU MMIO Group #0 */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#ga8d916f58eed8acfb75f244a7a110a378">Cy_Prot_ConfigPpuFixedGrMasterStruct</a>(PERI_PPU_GR_MMIO0, &amp;grPpuCfg_m))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">    {</div><div class="line">        <span class="comment">/* Enable the master struct of PPU MMIO Group #0 */</span></div><div class="line">        <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#gad12dc125790e5f1d22a8427ce4102889">Cy_Prot_EnablePpuFixedGrMasterStruct</a>(PERI_PPU_GR_MMIO0))</div><div class="line">        {</div><div class="line">            <span class="comment">/* Insert error handling */</span></div><div class="line">        }</div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga3b6956824bdfa0981edc8c528cd10727"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b6956824bdfa0981edc8c528cd10727">&#9670;&nbsp;</a></span>Cy_Prot_ConfigPpuFixedGrSlaveStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a> Cy_Prot_ConfigPpuFixedGrSlaveStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__ppu__gr__cfg__t.html">cy_stc_ppu_gr_cfg_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configures a Fixed Peripheral Group Protection Unit (PPU GR) slave protection struct with its protection attributes. </p>
<p>This function configures the slave struct of a PPU GR pair, which can protect an entire peripheral MMIO group from invalid bus master accesses. Refer to the device Technical Reference manual for details on peripheral MMIO grouping and which peripherals belong to which groups.</p>
<p>Each fixed PPU GR is devoted to a defined MMIO group. Hence the address, regionSize and subregions of the configuration struct are not applicable.</p>
<p>Note that the user/privileged execute accesses are read-only and are always enabled.</p>
<dl class="section note"><dt>Note</dt><dd>This function is applicable for CPUSS ver_1 only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The register base address of the protection structure being configured.</td></tr>
    <tr><td class="paramname">config</td><td>Initialization structure with all the protection attributes.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status of the function call.</dd></dl>
<table class="doxtable">
<tr>
<th>Status </th><th>Description  </th></tr>
<tr>
<td>CY_PROT_SUCCESS </td><td>PPU GR slave struct was successfully configured. </td></tr>
<tr>
<td>CY_PROT_FAILURE </td><td>The resource is locked. </td></tr>
<tr>
<td>CY_PROT_BAD_PARAM </td><td>An incorrect/invalid parameter was passed. </td></tr>
<tr>
<td>CY_PROT_INVALID_STATE </td><td>The function was called on the device with an unsupported PERI HW version. </td></tr>
</table>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: A bus master must not be able to access the Peripheral group 0 MMIO</span></div><div class="line"><span class="comment">                 registers (0x40000000 ~ 0x400FFFFF) unless it has the &quot;secure&quot;</span></div><div class="line"><span class="comment">                 attribute and is operating in &quot;privileged&quot; mode at PC=0 or PC=2. */</span></div><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__ppu__gr__cfg__t.html">cy_stc_ppu_gr_cfg_t</a> grPpuCfg_s = {</div><div class="line">        <span class="comment">/*.userPermission =*/</span> <a class="code" href="group__group__prot__enums.html#gga330789bc5242c26b8a32df63fa8720e5a71e68b733a505b1241d49c8f62cbfb61">CY_PROT_PERM_DISABLED</a>,<span class="comment">/* Disallow all user mode accesses */</span></div><div class="line">        <span class="comment">/*.privPermission =*/</span> <a class="code" href="group__group__prot__enums.html#gga330789bc5242c26b8a32df63fa8720e5aa7d757bf3cedd4f675b65d3ed642d315">CY_PROT_PERM_RW</a>,      <span class="comment">/* Allow Read and Write privileged mode accesses */</span></div><div class="line">        <span class="comment">/*.secure =*/</span> <span class="keyword">true</span>,                         <span class="comment">/* Only allow &quot;secure&quot; bus masters */</span></div><div class="line">        <span class="comment">/*.pcMatch =*/</span> <span class="keyword">false</span>,                       <span class="comment">/* Perform access evaluation */</span></div><div class="line">        <span class="comment">/*.pcMask =*/</span> (uint16_t)<a class="code" href="group__group__prot__enums.html#gga4486bc74d6e98ad99c1ce4d532e48d0fa0b17d740a164ae90f06a4ab2f17d79d0">CY_PROT_PCMASK2</a>     <span class="comment">/* Allow PC=0 and PC=2 accesses */</span></div><div class="line">    };</div><div class="line">    </div><div class="line">    <span class="comment">/* Configure the slave struct of PPU MMIO Group #0 */</span></div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#ga3b6956824bdfa0981edc8c528cd10727">Cy_Prot_ConfigPpuFixedGrSlaveStruct</a>(PERI_PPU_GR_MMIO0, &amp;grPpuCfg_s))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span></div><div class="line">    {</div><div class="line">        <span class="comment">/* Enable the slave struct of PPU MMIO Group #0 */</span></div><div class="line">        <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#gaa4e0c6e3ace27f9f6a65d0e92d8185b9">Cy_Prot_EnablePpuFixedGrSlaveStruct</a>(PERI_PPU_GR_MMIO0))</div><div class="line">        {</div><div class="line">            <span class="comment">/* Insert error handling */</span></div><div class="line">        }</div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gad12dc125790e5f1d22a8427ce4102889"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad12dc125790e5f1d22a8427ce4102889">&#9670;&nbsp;</a></span>Cy_Prot_EnablePpuFixedGrMasterStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a> Cy_Prot_EnablePpuFixedGrMasterStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables the Master PPU GR structure. </p>
<p>This is a PPU GR master struct enable function. The PPU GR protection settings will take effect after successful completion of this function call.</p>
<dl class="section note"><dt>Note</dt><dd>This function is applicable for CPUSS ver_1 only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The base address for the protection unit structure being configured.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status of the function call.</dd></dl>
<table class="doxtable">
<tr>
<th>Status </th><th>Description  </th></tr>
<tr>
<td>CY_PROT_SUCCESS </td><td>The Master PU struct was enabled. </td></tr>
<tr>
<td>CY_PROT_FAILURE </td><td>The Master PU struct is disabled and possibly locked. </td></tr>
<tr>
<td>CY_PROT_INVALID_STATE </td><td>The function was called on the device with an unsupported PERI HW version. </td></tr>
</table>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: The master struct of PERI_PPU_GR_MMIO0 is configured to protect</span></div><div class="line"><span class="comment">                 its slave struct and needs to be enabled. */</span></div><div class="line">    </div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#gad12dc125790e5f1d22a8427ce4102889">Cy_Prot_EnablePpuFixedGrMasterStruct</a>(PERI_PPU_GR_MMIO0))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga8d193cf9763b597a8169cac671d6cb6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d193cf9763b597a8169cac671d6cb6e">&#9670;&nbsp;</a></span>Cy_Prot_DisablePpuFixedGrMasterStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a> Cy_Prot_DisablePpuFixedGrMasterStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disables the Master PPU GR structure. </p>
<p>This is a PPU GR master struct disable function. The PPU GR protection settings will seize to take effect after successful completion of this function call.</p>
<dl class="section note"><dt>Note</dt><dd>This function is applicable for CPUSS ver_1 only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The base address for the protection unit structure being configured.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status of the function call.</dd></dl>
<table class="doxtable">
<tr>
<th>Status </th><th>Description  </th></tr>
<tr>
<td>CY_PROT_SUCCESS </td><td>The Master PU struct was disabled. </td></tr>
<tr>
<td>CY_PROT_FAILURE </td><td>The Master PU struct is enabled and possibly locked. </td></tr>
<tr>
<td>CY_PROT_INVALID_STATE </td><td>The function was called on the device with an unsupported PERI HW version. </td></tr>
</table>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: The master struct of PERI_PPU_GR_MMIO0 needs to be disabled. Or</span></div><div class="line"><span class="comment">                 it needs to be reconfigured and hence must first be disabled. */</span></div><div class="line">    </div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#ga8d193cf9763b597a8169cac671d6cb6e">Cy_Prot_DisablePpuFixedGrMasterStruct</a>(PERI_PPU_GR_MMIO0))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gaa4e0c6e3ace27f9f6a65d0e92d8185b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa4e0c6e3ace27f9f6a65d0e92d8185b9">&#9670;&nbsp;</a></span>Cy_Prot_EnablePpuFixedGrSlaveStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a> Cy_Prot_EnablePpuFixedGrSlaveStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables the Slave PPU GR structure. </p>
<p>This is a PPU GR slave struct enable function. The PPU GR protection settings will take effect after successful completion of this function call.</p>
<dl class="section note"><dt>Note</dt><dd>This function is applicable for CPUSS ver_1 only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The base address for the protection unit structure being configured.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status of the function call.</dd></dl>
<table class="doxtable">
<tr>
<th>Status </th><th>Description  </th></tr>
<tr>
<td>CY_PROT_SUCCESS </td><td>The Slave PU struct was enabled. </td></tr>
<tr>
<td>CY_PROT_FAILURE </td><td>The Slave PU struct is disabled and possibly locked. </td></tr>
<tr>
<td>CY_PROT_INVALID_STATE </td><td>The function was called on the device with an unsupported PERI HW version. </td></tr>
</table>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    <span class="comment">/* Scenario: The slave struct of PERI_PPU_GR_MMIO0 is configured to protect</span></div><div class="line"><span class="comment">                 MMIO #0 and needs to be enabled. */</span></div><div class="line">    </div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#gaa4e0c6e3ace27f9f6a65d0e92d8185b9">Cy_Prot_EnablePpuFixedGrSlaveStruct</a>(PERI_PPU_GR_MMIO0))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga1b00e720c50090fbb31288400ed31a8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b00e720c50090fbb31288400ed31a8c">&#9670;&nbsp;</a></span>Cy_Prot_DisablePpuFixedGrSlaveStruct()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__prot__enums.html#ga13ede85383a4afaf5ed3a14b470e38bd">cy_en_prot_status_t</a> Cy_Prot_DisablePpuFixedGrSlaveStruct </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_p_e_r_i___p_p_u___g_r___type.html">PERI_PPU_GR_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disables the Slave PPU GR structure. </p>
<p>This is a PPU GR slave struct disable function. The PPU GR protection settings will seize to take effect after successful completion of this function call.</p>
<dl class="section note"><dt>Note</dt><dd>This function is applicable for CPUSS ver_1 only.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The base address for the protection unit structure being configured.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status of the function call.</dd></dl>
<table class="doxtable">
<tr>
<th>Status </th><th>Description  </th></tr>
<tr>
<td>CY_PROT_SUCCESS </td><td>The Slave PU struct was disabled. </td></tr>
<tr>
<td>CY_PROT_FAILURE </td><td>The Slave PU struct is enabled and possibly locked. </td></tr>
<tr>
<td>CY_PROT_INVALID_STATE </td><td>The function was called on the device with an unsupported PERI HW version. </td></tr>
</table>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <span class="comment">/* Scenario: The slave struct of PERI_PPU_GR_MMIO0 needs to be disabled. Or</span></div><div class="line"><span class="comment">                 it needs to be reconfigured and hence must first be disabled. */</span></div><div class="line">    </div><div class="line">    <span class="keywordflow">if</span>(<a class="code" href="group__group__prot__enums.html#gga13ede85383a4afaf5ed3a14b470e38bda462f07fcb31ed8a07dd273af4290691d">CY_PROT_SUCCESS</a> != <a class="code" href="group__group__prot__functions__ppu__gr.html#ga1b00e720c50090fbb31288400ed31a8c">Cy_Prot_DisablePpuFixedGrSlaveStruct</a>(PERI_PPU_GR_MMIO0))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
